package com.service.user;

import com.entity.WalletRecord;

import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**  */
public interface WalletService {
  /**
   * 修改收款二维码
   *
   * @param userId 用户名
   * @param file 新的二维码
   * @return 新的二维码的url
   */
  String chPaymentCodeUrl(String userId, MultipartFile file);

  /**
   * 提现
   *
   * @param userId 用户名
   * @param count 提现数量
   * @return 1 或 0
   */
  int requestWithdrawal(String userId, float count);

  /**
   * 获取流水记录
   *
   * @param userId 用户编号
   * @param type 为 0表示全部，其余类型参见WalletRecord
   * @param pageSize 页大小
   * @param pageIndex 页索引
   * @return 用户账户流水记录
   */
  List<WalletRecord> getWalletRecord(
      String userId, Integer type, Integer pageSize, Integer pageIndex);

  /**
   * 购买书币成功，需要更新用户的钱包余额、流水记录、添加通知。
   *
   * @param userId 用户编号
   * @param count 充值数量
   * @return 成功返回1，失败返回0
   */
  int buyCoinSuccess(String userId, float count);

  /**
   * 买书支出
   *
   * @param userId 用户编号
   * @param count 数量
   * @return 1/0
   */
  int pay(String userId, float count);

  /**
   * 卖书收入
   *
   * @param userId 用户编号
   * @param count 收入数量
   * @return 1/0
   */
  int income(String userId, float count);
}
